package com.example.controller;




import com.example.domain.dto.LoginRequest;
import com.example.domain.dto.LoginResponse;
import com.example.domain.response.HttpResponse;
import com.example.service.AuthService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 认证控制器类，处理与认证相关的HTTP请求
 */
@RestController
@RequestMapping("/auth")
@RequiredArgsConstructor
public class AuthController {

    // 注入认证服务类，用于处理认证逻辑
    private final AuthService authService;

    /**
     * 处理登录请求的方法
     *
     * @param request 登录请求体，包含用户认证所需的信息
     * @return 登录响应，包含登录结果和相关数据
     */
    @PostMapping("/login")
    public HttpResponse<LoginResponse> login(@RequestBody LoginRequest request) {
        return authService.login(request);
    }

    /**
     * 获取访问码列表的方法
     *
     * @return 访问码列表响应，包含系统生成的访问码列表
     */
    @GetMapping("/codes")
    public HttpResponse<List<String>> getAccessCodes() {
        return authService.getAccessCodes();
    }
}